class Solution
{
public:
    int bitwiseComplement(int n)
    {
        // 0 <= n < 1e9, 需要判断0, 不需要判断左移溢出
        if (n == 0)
        {
            return 1;
        }
        int mask = (1 << (32 - __builtin_clz(n))) - 1;
        return n ^ mask;
    }
};